import os
import redis

class Config(object):
    # 密钥配置
    SECRET_KEY = "2233"

    # =========================自定义配置=========================
    # 网站名称
    SITE_NAME = "暗天使"
    # 邮件前缀配置
    MAIL_SUBJECT_PREFIX = SITE_NAME
    # 上传图片 后缀
    IMG_FILE_NAME_EXT = ["jpg", "png", "gif"]
    # 验证码过期时间
    DELAULT_TIMEOUT_EMAIL_CODE = 300  # 秒
    # 分页默认数量
    DEFAULT_PAGE_NUMBER = 10
    # 首页轮播图配置
        # tag 标识 默认第一张图；只应该由一个
        # url 图片链接；title 标题；text 描述文本
        # href 图片超链接，外链以 http or https 开头
    INDEX_CAROUSELS = [
        {"tag": "active", "url": "/static/imgs/default/carousels/1.jpg",
            "title": "11111111111", "text": "22222222222", "href": "http://blog.antianshi.xyz"},
        {"tag": "", "url": "/static/imgs/default/carousels/2.jpg",
            "title": "11111111111", "text": "22222222222", "href": "#"},
        {"tag": "", "url": "/static/imgs/default/carousels/3.jpg",
            "title": "11111111111", "text": "22222222222", "href": "#"},
        {"tag": "", "url": "/static/imgs/default/carousels/4.jpg",
            "title": "11111111111", "text": "22222222222", "href": "#"},
    ]



    # =========================Bootstrap_Flask配置=========================
    # 使用本地的js css 资源；是使用Bootstrap_Flask自己带的，并不是自定义的static下的文件
    BOOTSTRAP_SERVE_LOCAL = True

    # =========================flask-mail配置=========================
    # qq邮箱服务器
    MAIL_SERVER = 'smtp.qq.com'
    #  端口
    MAIL_PORT = 465
    # 是否加密
    MAIL_USE_SSL = True
    # qq号， 发送者
    MAIL_USERNAME = os.environ.get("MAIL_USERNAME") # 从环境变量中拿，重要的配置应该选取此方法, 包括但不限于:SECRET_KEY
    # 密码， qq邮箱授权码
    MAIL_PASSWORD = os.environ.get("MAIL_PASSWORD")
    # 默认发送者邮箱
    MAIL_DEFAULT_SENDER = os.environ.get("MAIL_USERNAME")


    # =========================flask_sqlalchemy配置=========================
    # 动态追踪修改设置，如未设置只会提示警告
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    # 是否 自动提交
    SQLALCHEMY_COMMIT_ON_TEARDOWN = False


    # =========================flask-session配置=========================
    # session 储存类型；包括但不限于redis；sqlalchemy
    SESSION_TYPE="redis"
    # 如果设置session的生命周期是否是会话期, 为True，则关闭浏览器session就失效
    SESSION_PERMANENT = False
    # 是否对发送到浏览器上session的cookie值进行加密
    SESSION_USE_SIGNER = False
    # 保存到redis的session数的名称前缀
    SESSION_KEY_PREFIX = "session:"
    # session保存数据到redis时启用的链接对象
    SESSION_REDIS = redis.Redis(host='127.0.0.1', port='6379')  # 用于连接redis的配置


# 开发环境配置
class DevelopmentConfig(Config):
    # flask 配置 debug 模式
    DEBUG = True


    # =========================flask_sqlalchemy配置=========================
    # 数据库链接
    SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:123456@localhost:3306/blog_flask_123?charset=utf8mb4"
    # 查询时会显示原始SQL语句
    SQLALCHEMY_ECHO = True


# 生产环境配置
class ProductionConfig(Config):
    DEBUG = False
    SQLALCHEMY_ECHO = False
    SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:123456@localhost:3306/blog_flask_123?charset=utf8mb4"


# 配置选项
config = {
    'development': DevelopmentConfig,
    'production': ProductionConfig
}
